提交需求
      *
      *

      *
      *
      *
      立即提交
      点击”立即提交”,表明我理解并同意 《黄金城科技隐私条款》

      logo

        产品与服务
        解决方案
        技术支持
        合作发展
        关于黄金城

        申请试用
          shiro漏洞复现
          发布时间:2021-06-25 阅读次数: 444 次

          Apache Shiro是一个强大的简单易用的Java黄金城官网框架,主要用来更便捷的认证,授权,加密,会话管理。目前被广泛用在大量的登录认证功能中,而该框架的历史版本中存在多个高危漏洞,本文就以两个严重漏洞进行漏洞复现演示其效果。


          01


          CVE-2016-4437反序列漏洞复


          影响范围


          Apache Shiro < 1.2.4


          漏洞原理


          ApacheShiro框架提供了记住我(RememberMe)的功能,关闭了浏览器下次再打开时还是能记住你是谁,下次访问时无需再登录即可访问。


          Shiro对rememberMe的cookie做了加密处理,shiro在CookieRememberMeManager类中将cookie中rememberMe字段内容分别进行序列化、AES加密、Base64编码操作。


          在识别身份的时候,需要对Cookie里的rememberMe字段解密。根据加密的顺序,不难知道解密的顺序为:


          获取rememberMecookie


          Base64 decode


          解密AES(加密密钥硬编码)


          反序列化(未作过滤处理)


          但是,AES加密的密钥key被硬编码在代码里,意味着每个人通过源代码都能拿到AES加密的密钥。因此,攻击者构造一个恶意的对象,并且对其序列化,AES加密,base64编码后,作为cookie的rememberMe字段发送。Shiro将rememberMe进行解密并且反序列化,最终造成反序列化漏洞。


          常用payload


          https://github.com/insightglacier/Shiro_exploit


          漏洞复现


          从vulhub中下载安装靶机

          https://github.com/vulhub/vulhub/tree/master/shiro/CVE-2016-4437


          正常访问


          抓包看请求包,返回包中含有Set-Cookie: rememberMe=deleteMe;这一般为shiro的指纹特征。


          使用上面的poc进行漏洞利用,下载poc并执行

          python3shiro_exploit.py -u http://192.168.160.239:8080 -p "touchsuccessshiro.txt" -t 3


          成功创建successshiro.txt文件


          02CVE-2020-1957认证绕过漏洞复现


          影响范围


          ApacheShiro < =1.5.1


          漏洞原理


          ApacheShiro 1.5.1以前的版本中,Spring Boot中使用Apache Shiro进行身份验证、权限控制时,可以精心构造恶意的URL,利用Apache Shiro和SpringBoot对URL的处理的差异化,可以绕过ApacheShiro对Spring Boot中的Servlet的权限控制,越权并实现未授权访问。如攻击者通过构造..;这样的跳转,可以绕过Shiro中对目录的权限限制。


          常用payload


          /xxx/..;/


          漏洞复现


          从vulhub下载安装靶机

          https://github.com/vulhub/vulhub/blob/master/shiro/CVE-2020-1957/README.zh-cn.md


          正常访问admin管理页面,会重新跳转的登录页面

          http://192.168.160.239:8080/admin/


          利用该漏洞poc,在admin前添加/xxx/..;/,即

          http://192.168.160.239:8080/xxx/..;/admin/,注意最后斜杠要带上。


          成功进入admin管理页面。

          免费试用
          服务热线

          马上咨询

          400-811-3777

          回到顶部

          【网站地图】【sitemap】